-
-
Notifications
You must be signed in to change notification settings - Fork 389
Decouple the session loader into reader and writer over the cache #4445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
… them to improve performance fix haskell#4381
…p error loading and cradle files
ba7379b
to
79a43a0
Compare
Renames getOptions to getOptionsWorker for clarity Removes redundant getOptionsLoop function Ensures session loading is called under the same `Action` context
I don't understand why it fails to build for ghc version before 9.10.1.
@fendor Can you help me on this ? I am puzzled.
give me
|
@soulomoon That was a tricky one! The ultimate conflict is that Then, the latest version of Adding to the
works for me. |
Thank you so much for your help @fendor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
Files not reviewed (5)
- cabal.project: Language not supported
- ghcide/ghcide.cabal: Language not supported
- ghcide/session-loader/Development/IDE/Session.hs: Language not supported
- ghcide/session-loader/Development/IDE/Session/Diagnostics.hs: Language not supported
- ghcide/session-loader/Development/IDE/Session/OrderedSet.hs: Language not supported
…ration of concerns
Follow up of and already include the changes in #4439
Refactored session loader to use architecture that having multiple readers and writer over the cache .
In bigger project, HLS usually loading up slow. One of the main obstacle is that we are loading ghc options for files in strict sequential order.
I have made an attemp to improve the situation by refactoring this loading into reader and writer over cache. This way, the long laoding file won't be blocking already loaded files, making hls more responsive and smooth.
Also it eliminates session loading for the same file from being multiply requested, by lining up in an ordered set in stead of a list.